/*
 * Copyright (c) 2024 Huawei Device Co., Ltd.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

#ifndef YY_SETTINGS_PARSER_SETTINGS_SETTINGS_PARSER_H_INCLUDED
# define YY_SETTINGS_PARSER_SETTINGS_SETTINGS_PARSER_H_INCLUDED
/* Debug traces.  */
#ifndef SETTINGS_PARSER_DEBUG
# if defined YYDEBUG
#if YYDEBUG
#   define SETTINGS_PARSER_DEBUG 1
#  else
#   define SETTINGS_PARSER_DEBUG 0
#  endif
# else /* ! defined YYDEBUG */
#  define SETTINGS_PARSER_DEBUG 1
# endif /* ! defined YYDEBUG */
#endif  /* ! defined SETTINGS_PARSER_DEBUG */
#if SETTINGS_PARSER_DEBUG
extern int settings_parser_debug;
#endif

/* Token kinds.  */
#ifndef SETTINGS_PARSER_TOKENTYPE
# define SETTINGS_PARSER_TOKENTYPE
  enum settings_parser_tokentype
  {
    SETTINGS_PARSER_EMPTY = -2,
    SETTINGS_PARSER_EOF = 0,       /* "end of file"  */
    SETTINGS_PARSER_error = 256,   /* error  */
    SETTINGS_PARSER_UNDEF = 257,   /* "invalid token"  */
    NAME = 258,                    /* NAME  */
    STRING = 259,                  /* STRING  */
    DOT = 260,                     /* "."  */
    COMMA = 261,                   /* ","  */
    COLON = 262,                   /* ":"  */
    NEWLINE = 263,                 /* NEWLINE  */
    STRING_ERROR = 264             /* STRING_ERROR  */
  };
  typedef enum settings_parser_tokentype settings_parser_token_kind_t;
#endif
/* Token kinds.  */
#define SETTINGS_PARSER_EMPTY -2
#define SETTINGS_PARSER_EOF 0
#define SETTINGS_PARSER_error 256
#define SETTINGS_PARSER_UNDEF 257
#define NAME 258
#define STRING 259
#define DOT 260
#define COMMA 261
#define COLON 262
#define NEWLINE 263
#define STRING_ERROR 264

/* Value type.  */
#if ! defined SETTINGS_PARSER_STYPE && ! defined SETTINGS_PARSER_STYPE_IS_DECLARED
union SETTINGS_PARSER_STYPE
{
#line 86 "settings/settings_parser.y"

	char *s;
	struct section_t *sec;
	struct kv_t *kv;
	array_t *refs;

#line 100 "settings/settings_parser.h"

};
typedef union SETTINGS_PARSER_STYPE SETTINGS_PARSER_STYPE;
# define SETTINGS_PARSER_STYPE_IS_TRIVIAL 1
# define SETTINGS_PARSER_STYPE_IS_DECLARED 1
#endif




int settings_parser_parse (parser_helper_t *ctx);

/* "%code provides" blocks.  */
#line 75 "settings/settings_parser.y"

	#define YY_DECL \
		int settings_parser_lex(SETTINGS_PARSER_STYPE *yylval, void *yyscanner)
	YY_DECL;

#line 120 "settings/settings_parser.h"

#endif /* !YY_SETTINGS_PARSER_SETTINGS_SETTINGS_PARSER_H_INCLUDED  */
